#!/usr/bin/env python
# -*- coding: UTF8 	-*-
import sys
import os
import comunes
import subprocess
from strSQL.mezcla import strSelectDespachoMezcla
from strSQL.embotellado import strSelectDespachoEmbotellado
from fechas import CDateLocal
from psycopg2 import connect

(CODIGO_DESPACHO,
 CODIGO_TIPO_DOCUMENTO,
 DESCRIPCION_DOCUMENTO,
 NUMERO_DOCUMENTO,
 FECHA_DESPACHO,
 HORA_DESPACHO,
 RUT_CLIENTE,
 NOMBRE_CLIENTE,
 RUT_TRANSPORTISTA,
 NOMBRE_TRANSPORTISTA,
 DESTINO,
 OBSERVACIONES,
 SELLO) = range(13)

class DespachoHTML:
    
     def __init__(self, conexion = None, model=[], it=None):
          self.cnx = conexion
          self.cursor = self.cnx.cursor()
          self.html = ""
          self.codigo = model.get_value(it, CODIGO_DESPACHO)
          self.cliente = model.get_value(it, NOMBRE_CLIENTE)
          self.rut_cliente = model.get_value(it, RUT_CLIENTE)
          self.destino = model.get_value(it, DESTINO)
          self.transporte = model.get_value(it, NOMBRE_TRANSPORTISTA)
          self.rut_transportista = model.get_value(it, RUT_TRANSPORTISTA)
          self.fecha = model.get_value(it, FECHA_DESPACHO).split()[0]
          self.hora = model.get_value(it, HORA_DESPACHO)
          self.numero_documento = model.get_value(it, NUMERO_DOCUMENTO)
          self.tipo_documento = model.get_value(it, DESCRIPCION_DOCUMENTO)
          self.sello = model.get_value(it, SELLO)
          self.observaciones = model.get_value(it, OBSERVACIONES)
          
     def tohtml(self):
          
          self.html = '<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">'
          self.html += "<h1><center><U>Guia de Despacho Nº %s</U></center></h1>" %self.codigo
          self.html += '<h5>Viña las Tinajas del Maule LTDA<br>'
          self.html += 'Villa Alegre<br> Séptima Región - Chile </h5>'
          self.html += "<tt>"
          self.html += '<table WIDTH=90%  rules="groups, cols">'
          self.html += '<tr><td><b>Nombre Destinatario: </b>%s</td><td><b>R.U.T. destinatario: </b>%s</tr>'%(self.cliente, self.rut_cliente)
          self.html += '<br><tr><td><b>Destino: </b>%s </td><td><b>Transporte: </b>%s</td>' %(self.destino, self.transporte)
          self.html += '<td><b>R.U.T del Transportista: </b>%s</tr>' %self.rut_transportista
          self.html += '<br><tr><td><b>Tipo de Documento: </b> %s </td>'%self.tipo_documento
          self.html += '<td><b>Número de Documento: </b> %s </td>'%(self.numero_documento)
          self.html += '<td><b>Sello de Seguridad:</b> %s</td></tr>' %self.sello
          self.html += '<tr><td><b> Fecha:</b> %s </td><td><b>Hora:</b> %s</td></tr>' %(self.fecha, self.hora)
          self.html += '<tr><td></td></tr>'
          self.html += '<tr><td><b>Observaciones: </b><blockquote>%s </blockquote></td></tr>' %self.observaciones
          self.html += '</tr>'
          self.html += "</table></tt>"
          self.html += '<br><h5><u>Detalle del Despacho</u></h5>'
          self.ListaDespacho(strSelectDespachoEmbotellado, "Embotellado (s)")
          self.ListaDespacho(strSelectDespachoMezcla, "Mezcla (s)")
          self.html += "</html>"
          
     def ListaDespacho(self, sql, tipo):
          
          self.cursor.execute(sql %self.codigo)
          records = self.cursor.fetchall()
          if records:
               self.html += "<tt>"
               self.html += '<table WIDTH=90% rules="groups, cols">'
               self.html += '<td><b>Despacho de %s: </b></td><td></td>' %tipo
               self.html += '<tr>'
               self.html += '<td>Código</td> <td>Descripción</td> '
               self.html += '<td>Cantidad</td>'
               for record in records:
                    self.html += '<br><tr>'
                    for i in record:
                         self.html += "<td>%s</td>" %i
                    self.html += '</tr>'
               self.html += "</table></tt>"


     def show(self):
          self.tohtml()
          f = open("reporte.html", "w")
          f.write(self.html)
          f.close()
          if sys.platform == "win32":
               #os.system("explorer reporte.html")
               subprocess.Popen('explorer reporte.html', shell=True)
          else:
               #os.system("firefox reporte.html")
               subprocess.Popen('firefox reporte.html', shell=True)
